package com.wx.business.util;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import com.eachonline.util.RedisHelper;
 
public class SmsUtil {
 
  
       /**
	    * 	0：成功
		* 	30：密码错误
		* 	40：账号不存在
		*   41：余额不足
		* 	42：帐号过期
		* 	43：IP地址限制
		* 	50：内容含有敏感词
		* 	51：手机号码不正确
	    * @param telphone
	    * @param code
	    */
		 public static String  sendMsgToUser(String telphone,String templet,String code){
		 	
			 String username = "wemo"; //在短信宝注册的用户名
		     String password = "zol!@123"; //在短信宝注册的密码
		     String phone = telphone;
		
		     String httpUrl = "http://api.smsbao.com/sms";
		     
		     StringBuffer httpArg = new StringBuffer();
		     httpArg.append("u=").append(username).append("&");
		     httpArg.append("p=").append(md5(password)).append("&");
		     httpArg.append("m=").append(phone).append("&");
		     httpArg.append("c=").append(encodeUrlString(templet.replace("{1}", code), "UTF-8"));
		
		     String result = request(httpUrl, httpArg.toString());
		     
		     System.out.println(result);
		 	return result;
		 }
		 
		 

	    public static String request(String httpUrl, String httpArg) {
	        BufferedReader reader = null;
	        String result = null;
	        StringBuffer sbf = new StringBuffer();
	        httpUrl = httpUrl + "?" + httpArg;
	 
	        try {
	            URL url = new URL(httpUrl);
	            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
	            connection.setRequestMethod("GET");
	            connection.connect();
	            InputStream is = connection.getInputStream();
	            reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
	            String strRead = reader.readLine();
	            if (strRead != null) {
	                sbf.append(strRead);
	                while ((strRead = reader.readLine()) != null) {
	                    sbf.append("\n");
	                    sbf.append(strRead);
	                }
	            }
	            reader.close();
	            result = sbf.toString();
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	        return result;
	    }
	 
	    public static String md5(String plainText) {
	        StringBuffer buf = null;
	        try {
	            MessageDigest md = MessageDigest.getInstance("MD5");
	            md.update(plainText.getBytes());
	            byte b[] = md.digest();
	            int i;
	            buf = new StringBuffer("");
	            for (int offset = 0; offset < b.length; offset++) {
	                i = b[offset];
	                if (i < 0)
	                    i += 256;
	                if (i < 16)
	                    buf.append("0");
	                buf.append(Integer.toHexString(i));
	            }
	        } catch (NoSuchAlgorithmException e) {
	            e.printStackTrace();
	        }
	        return buf.toString();
	    }
	 
	    public static String encodeUrlString(String str, String charset) {
	        String strret = null;
	        if (str == null)
	            return str;
	        try {
	            strret = java.net.URLEncoder.encode(str, charset);
	        } catch (Exception e) {
	            e.printStackTrace();
	            return null;
	        }
	        return strret;
	    }
	    
	    
	    

	    public static boolean checkCode(String code,String telephone,int type){
			
	    	String key=type+":"+telephone+":"+code;
	        Object obj = RedisHelper.get(key);
	        if (null == obj) { // session中没有存有验证码
	            return false;
	        }
	        
	        if(!code.equals(obj+""))
	        {
	        	 return false;
	        }
	        
	        //验证通过删除验证码
			RedisHelper.del(key);
	        
	        return true;
			
	    }
    
}